import shelve


"""
用shelve模块将程序中的变量保存到二进制shelf文件中
如下代码：
在 Windows 上运行，会创建3个新文件：mydata.bak、mydata.dat 和 mydata.dir
在 OS X 上，只会创建一个 mydata.db 文件

创建文件时，如果你需要在 Notepad 或 TextEdit 这样的文本编辑器中读取它们，纯文本就非常有用。
但是，如果想要保存 Python 程序中的数据，那就使用 shelve 模块
"""

shelfFile = shelve.open('mydata')
print(type(shelfFile))
cats = ['Zophie', 'Pooka', 'Simon']
dogs = ['dog1', 'dog2', 'dog3']
cars = ['car1', 'car2', 'car3']
shelfFile['dogs'] = dogs
shelfFile['cats'] = cats
shelfFile['cars'] = cars
shelfFile.close()

shelfFile = shelve.open("mydata")  # 打开后既能读也能写
print(shelfFile['cats'])
print(shelfFile['dogs'])
print(shelfFile['cars'])
del shelfFile['cars']
print(shelfFile.keys())  # 返回类似列表的值，而不是真正的列表
print(list(shelfFile.keys()))  # 使用list()函数，取得列表的形式
print(list(shelfFile.values()))
print(list(shelfFile.items()))
shelfFile.close()

